*sequence
 순차적으로 증가되는 값을 다루는 객체 이것을 이용해서 각 레코드를 구분하는 일련번호를 자동으로
 생성할 수 있음. 테이블과는 별개로(독립적) 생성되어 특정 시퀀스를 여러 테이블에 사용가능.
 
 MSSQL : identity
 MySQL : autoincrement
 
*sequence 만들기
 create sequence 이름
  start with 1
  increment by 1
  no cache;
  
*sequence 확인
 select * from user_sequences;
 
*sequence 삭제
 drop sequences 이름;
 
*실습
 hr
 exam
 collage
 
 
  create sequence hr
  start with 1        --시작값
  increment by 1      --증가값
  nocache;            --캐시사용여부
  
  create sequence exam
  start with 1
  increment by 1
  nocache;
  
  create sequence collage
  start with 1
  increment by 1
  nocache;
  
*DML
 데이터베이스에 데이터를 입력, 수정, 삭제, 조회하는 명령
 insert, select, update, delete
 
*insert
 하나의 레코드를 추가함
 테이블의 모든 필드에 값을 추가할 때에는 필드 목록은 생략가능.
 필드 목록과 values 절의 값은 1:1 대응 문자, 날짜는 ''를 이용해서 값 추가.

*모든 필드에 값 추가
 intsert into 테이블이름
 values(필드값1, 필드값2, '필드값3'... ...)
 
 
 create table exam06(
 coutsrId number(5),
 subjectId char(4),
 courseNumber number(4),
 title varchar2(30),
 numofCredits number(1)
);
 intsert into exam06
 values(11111, 'CSCI', 1301, 'Introduction to Java I', 4)

*일부 필드에 값 추가
 insert into 테이블명 (필드목록)
 values (값1, 값2, '값3'... ...);
 
 intsert into exam06(coutsrId, subjectId, courseNumber, title, numofCredits)
 values(11111, 'CSCI', 1301, 'Introduction to Java I', 4)
 
* null 값 추가
 insert into exam06
 values(null, null, null, null, null );
 
*sequence 추가
 가짜컬럼 nextval 을 이용함
 시퀀스 이름(nextval)
 insert into exam06(coutsrId)
 values (exam.nextval)
 
 
 create table 학생 (
 순번 number(5),
 학번 number(9),
 이름 varchar2(100),
 주소 varchar2(100),
 나이 number(3),
 생년월일 DATE,
 학과명 varchar2(100),
 지도교수 number(3),
 면담시간 varchar2(100)
 );
 
 insert into 학생
 values(exam.nextval,201350050,'김태희', '경기도 고양시', 25, to_date('19850322','YYYYMMDD'), '컴퓨터공학', 504, '목 2교시');
 insert into 학생
 values(exam.nextval,201250006,'송혜교', '서울 영등포구', 22, to_date('19880917','YYYYMMDD'), '컴퓨터공학', 301, '월 3교시');
 insert into 학생
 values(exam.nextval,201252110,'전지현', '경기도 의정부시', 24, to_date('19860430','YYYYMMDD'), '의상디자인', 445, '화 4교시');

drop table 학생; 

 

create table 학과(
  순번 number(5),
  학과명 varchar2(38),
  전화번호 varchar2(38),
  사무실위치 varchar2(38),
  학과장 number(38),
  임명일자 date
  );
  insert into 학과
  values(exam.nextval,'컴퓨터공학','123-4567-8901','E동 2층',504,to_date('2007','YYYY'));
  insert into 학과
  values(exam.nextval,'의상디자인','234-5678-9012','A동 1층',301,to_date('2009','YYYY'));
  insert into 학과
  values(exam.nextval,'식품영양','345-6789-0123','F동 8층', 556, to_date('2006','YYYY'));
 
 
 create table 과목(
  순번 number(5),
 과목번호 number(4),
 과목명 varchar2(100),
 과목개요 varchar2(100),
 담당교수 varchar2(100)
 );
 insert into 과목
 values(exam.nextval,0205,'프로그래밍','자바 프로그래밍',301);
 insert into 과목
 values(exam.nextval,0211,'드레스 코드','옷 입기의 기초',445);
 insert into 과목
 values(exam.nextval,5029,'생활의 참견','음식의영양',556);

 
 create table 교수(
  순번 number(5),
 교수번호 number(4),
 이름 varchar2(100),
 전공분야 varchar2(100)
 );
 insert into 교수
 values(exam.nextval,301,'이순신','프로그래밍');
  insert into 교수
 values(exam.nextval,445,'정약용','의상디자인');
  insert into 교수
 values(exam.nextval,556,'김유신','식품영양');

 
 
 create table 섹션(
  순번 number(5),
 과목번호 number(3),
 섹션 number(1)
 );
 insert into 섹션
 values(exam.nextval,504,1);
 insert into 섹션
 values(exam.nextval,301,3);

 
 
 create table 등록(
  순번 number(5),
 학번 number(9),
 과목번호 number(4)
 );
 insert into 등록
 values(exam.nextval,201250006,0205);
 insert into 등록
 values(exam.nextval,201252110,0211);

 
  
 create table 보유기술(
  순번 number(5),
 기술보유교수 number(3),
 보유기술 varchar2(100)
 );
 insert into 보유기술
 values(exam.nextval,445,'의상디자인 산업기사');
  insert into 보유기술
 values(exam.nextval,556,'식품영양 기능사');
 
 

  